package com.zyt.springboot.findFile;

import javax.swing.*;
import java.io.File;
import java.util.StringTokenizer;

/*
 * 腾哥专用代码防伪标志！！！
 * @params: 模糊查找该文件名的文件，并输出该文件的绝对路径
 */
public class FindFileUtil {
    /*
    * 1.控制台输入路径
    * 2.根据路径生成对应的file对象
    * 3.检查file对象是不是存在
    * 4.如果不存在--提示终止程序
    * 5.如果存在--判断是文件/文件夹 递归实现
    * 6.如果是文件--获取文件名称--通过文件名称判断是不是要查找的文件类型--如果是--打印文件路径
    * 7.如果是文件夹--遍历
    */
    public static void main(String[] args) {

        String pathName = "E:\\00计算机00\\陈老师Idea新课程20240108";
        //查找文件名
        String fileName = "jvm";
        //查找文件类型
        String fileType = ".log";

        System.out.println("开始查找");
        System.out.println(" ");
        findFile(new File(pathName),fileType);
        System.out.println(" ");
        System.out.println("查找完毕");
    }

    public static void findFile(File path, String fileX){
        //先判断路径是否合法
        if(path.exists()){
            //是否为文件夹
            if(path.isDirectory()){
                //获取该文件夹下所有文件和文件夹
                File[] files = path.listFiles();
                if (files != null) {
                    for (File f:files) {
                        if(f.isFile()){
                            //截取.以前的字符串
                            StringTokenizer stringTokenizer = new StringTokenizer(f.getName(),".");
                            String newFileName = stringTokenizer.nextToken();
                            //截取.以后的字符串
                            String fileType = f.getName().replace(newFileName, "");
                            //查找文件名
//                            if(newFileName.contains(fileX)){
//                                System.out.println(f.getPath());
//                            }
                            //查找文件类型
                            if(fileType.equals(fileX)){
                                System.out.println(f.getPath());
                            }
                        }else if(f.isDirectory()) {
                            findFile(f,fileX);
                        }
                    }
                }
            }else if(path.isFile()){
                if(path.getName().substring(0, path.getName().lastIndexOf(".")).equals(fileX)){
                    System.out.println(path.getPath());
                }
            }
        }else{
            System.out.println("路径不合法");
        }
    }
}
